package main

import "fmt"

func main()  {
	a := 1
	b := 2
	c := 3
	//定义一个数组，存储3个整数
	arr1 := [3]int{}
	arr1[0] = a
	arr1[1] = b
	arr1[2] = c
	fmt.Println(arr1)
	// 定义一个数组，存储3个整数的指针
	var p1 *[3]int  // *[3]int, [3]*int
	p1 = &arr1
	fmt.Println(p1) //&[1 2 3]
	fmt.Println(*p1) //[1 2 3]
	fmt.Printf("%p\n",p1) //0xc0420420a0
	fmt.Printf("%p\n", &arr1) //0xc0420420a0

	var arr2 [3]*int // *int
	arr2[0] = &a
	arr2[1] = &b
	arr2[2] = &c
	fmt.Printf("%p\n",&arr2)
	for i:=0;i<len(arr2);i++{
		fmt.Printf("arr2中的数据是指针：%p，根据指针取数据%d\n",arr2[i],*(arr2[i]))
	}
	/*
	*[4]string
		指针：指向了一个长度为4的字符串类型数组的地址
	[4]*string
		数组：存储的是字符串的指针
	*[4]float64
		指针：长度为4的float的数组的地址
	**[4]float64
		[4]float64：长度为4的浮点类型的数组
		*[4]float64：长度为4的浮点类型的数组的指针
		**[4]float64：


	 */



}
